﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using proyEspacio.baseDato;

namespace proyEspacio.logicaNegocio
{
    public static class admGalaxia
    {
        /// <summary>
        /// Metodo para saber si existe una galaxia en la base de datos
        /// </summary>
        /// <param name="busqueda">parametro de busqueda</param>
        /// <returns></returns>
        public static bool existeGalaxia(string busqueda)
        {
            espacioEntities bd = new espacioEntities();
            return bd.Galaxia.Any(g=> g.Nombre==busqueda);
        }
        /// <summary>
        /// Metodo que permite ingresar una nueva galaxia a la base de datos
        /// </summary>
        /// <param name="entrada">Nombre de galaxia</param>
        /// <returns></returns>
        public static string ingresaGalaxia(string entrada)
        {
            var existe = existeGalaxia(entrada);
            if (existe)
            {
                return "";
            }
            else 
            {
                espacioEntities bd = new espacioEntities();
                Galaxia ingreso = new Galaxia
                {
                    Nombre=entrada
                };
                bd.Galaxia.Add(ingreso);
                bd.SaveChanges();
                return "Nueva galaxia ingresada";
            }
        }
        /// <summary>
        /// Busca una galaxia que coincida con el parametro de busqueda
        /// </summary>
        /// <param name="busqueda">Galaxia a buscar</param>
        /// <returns></returns>
        public static Galaxia buscaGalaxia(string busqueda)
        {
            espacioEntities bd = new espacioEntities();
            return bd.Galaxia.FirstOrDefault(g=> g.Nombre==busqueda);
        } 
        /// <summary>
        /// Elimina una galaxia de la base de datos
        /// </summary>
        /// <param name="galaxia">galaxia a eliminar</param>
        /// <returns>un mensaje</returns>
        public static string eliminaGalaxia(string galaxia)
        {
            espacioEntities bd = new espacioEntities();
            Galaxia eliminar = bd.Galaxia.FirstOrDefault(g => g.Nombre == galaxia);
            admSistPlaneta.eliminaSistPlanetas(eliminar.Id_galaxia);
            bd.Galaxia.Remove(eliminar);
            bd.SaveChanges();
            return "Galaxia eliminada";
        }
        /// <summary>
        /// Permite editar el nombre de una galaxia
        /// </summary>
        /// <param name="idGalaxia">Identificador de galaxia</param>
        /// <param name="nombre">Nombre nuevo de la galaxia</param>
        /// <returns>un mensaje</returns>
        public static string editaGalaxia(int idGalaxia, string nombre)
        {
            espacioEntities bd = new espacioEntities();
            Galaxia editar = bd.Galaxia.Find(idGalaxia);
            editar.Nombre = nombre;
            bd.SaveChanges();
            return "Datos actualizados";
        }
    }
}
